package cn.seocoo.platform.car.service;

import cn.seocoo.platform.car.domain.CarInfo;
import cn.seocoo.platform.car.dto.CarDetailDto;
import cn.seocoo.platform.car.dto.CarDto;
import cn.seocoo.platform.car.dto.CarFrom;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 车辆基本 服务层
 * 
 * @author wujian
 * @date 2019-12-31
 */
public interface ICarInfoService 
{
	/**
     * 查询车辆基本信息
     * 
     * @param id 车辆基本ID
     * @return 车辆基本信息
     */
	public CarInfo selectCarInfoById(Integer id);
	
	/**
     * 查询车辆基本列表
     * 
     * @param carInfo 车辆基本信息
     * @return 车辆基本集合
     */
	public List<CarInfo> selectCarInfoList(CarInfo carInfo);
	
	/**
     * 新增车辆基本
     * 
     * @param carInfo 车辆基本信息
     * @return 结果
     */
	public int insertCarInfo(CarInfo carInfo);
	
	/**
     * 修改车辆基本
     * 
     * @param carInfo 车辆基本信息
     * @return 结果
     */
	public int updateCarInfo(CarInfo carInfo);
		
	/**
     * 删除车辆基本信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteCarInfoByIds(String ids);

	/**
	 * @Author WuJian
	 * @Description //查询用户发不了多少量车
	 * @Date 11:44 2019/12/31
	 * @Param [id]
	 * @return int
	 **/
    int getCountCarWithAppUserId(Integer id);

	Map<String,String> publishCar(CarFrom carFrom);

	/**
	 * @Author WuJian
	 * @Description //首页标题查询
	 * @Date 15:53 2019/12/31
	 * @Param [title]
	 * @return java.util.List<cn.seocoo.platform.car.dto.CarDto>
	 **/
	List<CarDto> getCarList(String title, Integer pageNum, Integer pageSize,Integer appUserId);

	/**
	 * @Author WuJian
	 * @Description //查询车辆详情
	 * @Date 10:33 2020/1/2
	 * @Param [id]
	 * @return cn.seocoo.platform.car.dto.CarDetailDto
	 **/

    CarDetailDto getCarDetail(Integer id,Integer appUserId) throws Exception;

    /**
     * @Author WuJian
     * @Description //车辆上下架
     * @Date 14:39 2020/1/3
     * @Param [id, shelfStatus]
     * @return int
     **/
    int shelfCar(Integer id, String shelfStatus);
}
